二进制安全与逆向工程实战

📚 共计 30 章节
01
二进制安全概述
什么是二进制安全 · 逆向工程定义与分类 · 学习路径与工具概览
入门概念
02
计算机基础回顾
计算机组成原理 · 操作系统基础(进程/内存/文件) · 汇编入门(x86)
基础汇编
03
开发环境搭建
Win/Linux虚拟机 · VS/GCC/GDB/OllyDbg/IDA Pro 安装配置
环境工具
04
PE文件格式解析
DOS头 · NT头 · 节表 · 导入表 · 导出表 · 资源表详解
PE结构
05
ELF文件格式解析
ELF头 · 程序头表 · 节头表 · 符号表 · 重定位表
ELFLinux
06
静态分析基础
IDA Pro界面 · 反汇编窗口 · 函数识别 · 交叉引用 · 字符串搜索
静态IDA
07
动态分析基础
OllyDbg/x64dbg · 断点(软件/硬件/内存) · 单步调试 · 内存查看
动态调试
08
汇编指令精讲 (一)
数据传送(MOV/PUSH/POP/LEA) · 算术运算(ADD/SUB/MUL/DIV)
汇编指令
09
汇编指令精讲 (二)
逻辑运算(AND/OR/XOR/NOT) · 移位 · 比较与跳转(CMP/JMP/Jcc)
汇编跳转
10
栈帧与函数调用
调用约定(cdecl/stdcall/fastcall) · 栈帧结构 · 参数传递 · 返回值
调用约定
11
C语言逆向 (一)
变量/常量 · 数组 · 指针 · 结构体反汇编识别
C逆向
12
C语言逆向 (二)
if-else · switch · 循环(for/while/do-while) 反汇编模式
控制流C
13
C语言逆向 (三)
函数调用 · 递归 · 函数指针 · 回调函数反汇编分析
函数指针
14
C++逆向基础
this指针 · 虚函数表(vtable) · 构造/析构 · 继承与多态识别
C++vtable
15
Windows API逆向
MessageBox · CreateFile · ReadFile · WriteFile 调用识别与参数分析
APIWindows
16
消息机制与窗口过程
Windows消息循环 · 窗口过程函数 · 子类化与超类化逆向
消息窗口
17
脱壳技术 (一)
什么是壳 · 常见壳分类(UPX/ASPack/Themida) · 手动寻找OEP
脱壳OEP
18
脱壳技术 (二)
工具脱壳(UPX -d/OllyDump/ImportREC) · 修复IAT
IAT修复
19
反调试技术 (一)
IsDebuggerPresent · NtGlobalFlag · PEB标志位 · 时间差检测
反调试PEB
20
反调试技术 (二)
断点检测(INT3/硬件断点) · 反附加 · TLS回调 · 异常处理反调试
反调试TLS
21
反反调试技术
绕过反调试常见方法 · Patch · Hook · 模拟执行
绕过Hook
22
代码混淆与虚拟化
控制流平坦化 · 虚假控制流 · OLLVM · VMP原理简介
混淆VMP
23
网络协议逆向
Wireshark抓包 · TCP/UDP分析 · 自定义协议识别与解析
网络协议
24
恶意代码分析 (一)
静态分析(查壳/字符串/导入表) · 动态分析(沙箱/行为监控)
恶意沙箱
25
恶意代码分析 (二)
勒索软件分析 · 远控木马分析 · Rootkit检测
勒索Rootkit
26
漏洞挖掘基础
栈溢出 · 堆溢出 · 整数溢出 · 格式化字符串漏洞
漏洞溢出
27
Shellcode编写
Shellcode原理 · 编写与调试 · 编码/解码(Alphanumeric)
Shellcode漏洞
28
Fuzzing技术
什么是Fuzzing · AFL/libFuzzer使用 · 崩溃分析 · 漏洞验证
FuzzingAFL
29
补丁与修改
文件补丁(Hex Editor) · 内存补丁(Cheat Engine) · API Hook(Detours/MinHook)
补丁Hook
30
综合实战
从零逆向CrackMe/恶意样本 · 完成分析报告
实战报告